﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using QLT_Public;
using QLT_BLL;
namespace GiaoDien
{
    public partial class uc_CTHoaDonNhap : DevExpress.XtraEditors.XtraUserControl
    {
        public uc_CTHoaDonNhap()
        {
            InitializeComponent();
        }
        CTHoaDonNhap_BLL cthdn_bll = new CTHoaDonNhap_BLL();
        public void Huy_Text(Control ctr)
        {
            if (ctr is TextBox || ctr is TextEdit)
            {
                ctr.Text = string.Empty;
            }
            foreach (Control i in ctr.Controls)
                Huy_Text(i);
        }
        public void GetData()
        {
            string sql = "select * from tbl_Thuoc,tbl_CTHoaDonNhap where tbl_CTHoaDonNhap.MaThuoc=tbl_Thuoc.MaThuoc and tbl_CTHoaDonNhap.MaHDN='" + cmbMaHDN.Text + "' and tbl_Thuoc.TenThuoc=N'" + cmbThuoc.Text + "'";
            DataTable dt = new DataTable();
            dt = thuoc_bll.taoBang(sql);
            cmbMaThuoc.DataSource = dt;
            cmbMaThuoc.DisplayMember = "MaThuoc";
            //cmbThuoc.DataSource = dt;
            //cmbThuoc.DisplayMember = "TenThuoc";
            string sql1 = "select * from tbl_NhanVien,tbl_CTHoaDonNhap where tbl_CTHoaDonNhap.MaNV=tbl_NhanVien.MaNV and tbl_CTHoaDonNhap.MaHDN='" + cmbMaHDN.Text + "' and tbl_NhanVien.HoTen=N'" + cmbNguoiNhan.Text + "'";
            DataTable dt1 = new DataTable();
            dt1 = thuoc_bll.taoBang(sql1);
            cmbMaNV.DataSource = dt1;
            cmbMaNV.DisplayMember = "MaNV";
        }
        private void uc_CTHoaDonNhap_Load(object sender, EventArgs e)
        {
            gridControl1.DataSource = cthdn_bll.LayDuLieu();
            bbi_Luu.Enabled = false;
            cmbMaHDN.Enabled = false;
            cmbTenHDN.Enabled = false;
            cmbThuoc.Enabled = false;
            dateTimeNgaySX.Enabled = false;
            txtSoLuong.Enabled = false;
            cmbDVT.Enabled = false;
            txtGiaNhap.Enabled = false;
            txtNguoiGiao.Enabled = false;
            cmbNguoiNhan.Enabled = false;
            bbi_Huy.Enabled = false;
            cmbMaNV.Hide();
            cmbMaThuoc.Hide();
        }
        int Flag;
        private void bbi_Sua_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            Flag = 1;
            cmbMaHDN.Text = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "Mã Hóa Đơn Nhập").ToString();
            cmbThuoc.Text = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "Tên Thuốc").ToString();
            dateTimeNgaySX.Text = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "Ngày Sản Xuất").ToString();
            txtSoLuong.Text = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "Số Lượng").ToString();
            cmbDVT.Text = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "Đơn Vị Tính").ToString();
            txtGiaNhap.Text = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "Giá Nhập").ToString();
            txtNguoiGiao.Text = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "Người Giao").ToString();
            cmbNguoiNhan.Text = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "Người Nhận").ToString();
            GetData();

            bbi_Them.Enabled = false;
            bbi_Sua.Enabled = false;
            bbi_Luu.Enabled = true;
            cmbMaHDN.Enabled = true;
            cmbTenHDN.Enabled = true;
            cmbThuoc.Enabled = true;
            dateTimeNgaySX.Enabled = true;
            txtSoLuong.Enabled = true;
            cmbDVT.Enabled = true;
            txtGiaNhap.Enabled = true;
            txtNguoiGiao.Enabled = true;
            cmbNguoiNhan.Enabled = true;
            bbi_Huy.Enabled = true;
        }
        NhatKy_Bll nhatKy_bll = new NhatKy_Bll();
        private void bbi_Luu_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            NhatKy_Public nk = new NhatKy_Public();
            CTHoaDonNhap_Public ct = new CTHoaDonNhap_Public();
            if (cmbTenHDN.Text != "" && cmbThuoc.Text != "" && txtSoLuong.Text != "" && txtGiaNhap.Text != "" && cmbNguoiNhan.Text != "")
            {
                if (Flag == 0)
                {
                    try
                    {
                        ct.MaHDN = int.Parse(cmbMaHDN.Text);
                        ct.MaThuoc = int.Parse(cmbMaThuoc.Text);
                        ct.NgaySX = Convert.ToDateTime(dateTimeNgaySX.Text);
                        ct.SoLuong = int.Parse(txtSoLuong.Text);
                        ct.DVT = cmbDVT.Text;
                        ct.GiaNhap = int.Parse(txtGiaNhap.Text);
                        ct.NguoiGiao = txtNguoiGiao.Text;
                        ct.MaNV = int.Parse(cmbMaNV.Text);
                        cthdn_bll.insert_CTHoaDonNhap(ct, ct, ct, ct, ct, ct, ct, ct);
                        string d = DateTime.Now.ToString();
                        Class_TrungGian tg = new Class_TrungGian();
                        nk.TaiKhoan = tg.TaiKhoan;
                        nk.NgayGio = d;
                        nk.DoiTuong = tg.DoiTuong;
                        nk.HanhDong = "Thêm Mới";
                        nk.MoTa = "Thêm mới thông tin Chi tiết hóa đơn nhập thuốc: '" + cmbTenHDN.Text + "'";
                        nhatKy_bll.insert_NhatKy(nk, nk, nk, nk, nk);
                        XtraMessageBox.Show("Thêm mới thành công!", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        Huy_Text(this);
                        cmbMaHDN.ResetText();
                        cmbThuoc.ResetText();
                        cmbDVT.ResetText();
                        cmbNguoiNhan.ResetText();
                        cmbTenHDN.ResetText();
                    }

                    catch (Exception)
                    {
                        XtraMessageBox.Show("Thực hiện không thành công!Bạn hãy nhập lại dữ liệu", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
                if (Flag == 1)
                {
                    try
                    {
                        ct.MaHDN = int.Parse(cmbMaHDN.Text);
                        ct.MaThuoc = int.Parse(cmbMaThuoc.Text);
                        ct.NgaySX = Convert.ToDateTime(dateTimeNgaySX.Text);
                        ct.SoLuong = int.Parse(txtSoLuong.Text);
                        ct.DVT = cmbDVT.Text;
                        ct.GiaNhap = int.Parse(txtGiaNhap.Text);
                        ct.NguoiGiao = txtNguoiGiao.Text;
                        ct.MaNV = int.Parse(cmbMaNV.Text);
                        cthdn_bll.update_CTHoaDonNhap(ct, ct, ct, ct, ct, ct, ct, ct);
                        string d = DateTime.Now.ToString();
                        Class_TrungGian tg = new Class_TrungGian();
                        nk.TaiKhoan = tg.TaiKhoan;
                        nk.NgayGio = d;
                        nk.DoiTuong = tg.DoiTuong;
                        nk.HanhDong = "Sửa";
                        nk.MoTa = "Sửa thông tin Mã Chi tiết hóa đơn nhập thuốc: '" + cmbMaHDN.Text + "' có tên: '"+cmbTenHDN.Text+"'";
                        nhatKy_bll.insert_NhatKy(nk, nk, nk, nk, nk);
                        XtraMessageBox.Show("Sửa thành công!", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        Huy_Text(this);
                        cmbMaHDN.ResetText();
                        cmbThuoc.ResetText();
                        cmbDVT.ResetText();
                        cmbNguoiNhan.ResetText();
                        cmbTenHDN.ResetText();
                    }

                    catch (Exception)
                    {
                        XtraMessageBox.Show("Thực hiện không thành công!Bạn hãy nhập lại dữ liệu", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
            }
            else
            {
                XtraMessageBox.Show("Bạn chưa nhập đủ thông tin cần thiết!", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            uc_CTHoaDonNhap_Load(sender, e);
            bbi_Them.Enabled = true;
            bbi_Sua.Enabled = true;
            bbi_Luu.Enabled = false;
            cmbMaHDN.Enabled = false;
            cmbTenHDN.Enabled = false;
            cmbThuoc.Enabled = false;
            dateTimeNgaySX.Enabled = false;
            txtSoLuong.Enabled = false;
            cmbDVT.Enabled = false;
            txtGiaNhap.Enabled = false;
            txtNguoiGiao.Enabled = false;
            cmbNguoiNhan.Enabled = false;

            bbi_Huy.Enabled = false;
        }

        private void gridControl1_DoubleClick(object sender, EventArgs e)
        {
            cmbMaHDN.Text = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "Mã Hóa Đơn Nhập").ToString();
            cmbThuoc.Text = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "Tên Thuốc").ToString();
            dateTimeNgaySX.Text = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "Ngày Sản Xuất").ToString();
            txtSoLuong.Text = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "Số Lượng").ToString();
            cmbDVT.Text = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "Đơn Vị Tính").ToString();
            txtGiaNhap.Text = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "Giá Nhập").ToString();
            txtNguoiGiao.Text = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "Người Giao").ToString();
            cmbNguoiNhan.Text = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "Người Nhận").ToString();
            GetData();
        }

        private void bbi_Xoa_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            CTHoaDonNhap_Public ct = new CTHoaDonNhap_Public();
            ct.MaHDN = Convert.ToInt32(gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "Mã Hóa Đơn Nhập").ToString());
            ct.MaThuoc = Convert.ToInt32(gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "Mã Thuốc").ToString());
            if (XtraMessageBox.Show("Bạn có muốn xóa Mã hóa đơn: '" + ct.MaHDN + "' của Thuốc có mã: '" + ct.MaThuoc + "' này không?", "Thông Báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
            {
                NhatKy_Public nk = new NhatKy_Public();
                string d = DateTime.Now.ToString();
                Class_TrungGian tg = new Class_TrungGian();
                nk.TaiKhoan = tg.TaiKhoan;
                nk.NgayGio = d;
                nk.DoiTuong = tg.DoiTuong;
                nk.HanhDong = "Xóa";
                nk.MoTa = "Xóa Mã Chi tiết hóa đơn nhập thuốc: '" + cmbMaHDN.Text + "'có mã thuốc: '"+cmbMaThuoc.Text+"'";
                nhatKy_bll.insert_NhatKy(nk, nk, nk, nk, nk);
                cthdn_bll.delete_CTHoaDonNhap(ct,ct);
                uc_CTHoaDonNhap_Load(sender, e);
            }
        }

        private void bbi_Huy_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            Huy_Text(this);
            bbi_Them.Enabled = true;
            bbi_Sua.Enabled = true;
            bbi_Luu.Enabled = false;
            cmbMaHDN.Enabled = false;
            cmbTenHDN.Enabled = false;
            cmbThuoc.Enabled = false;
            dateTimeNgaySX.Enabled = false;
            txtSoLuong.Enabled = false;
            cmbDVT.Enabled = false;
            txtGiaNhap.Enabled = false;
            txtNguoiGiao.Enabled = false;
            cmbNguoiNhan.Enabled = false;
            bbi_Huy.Enabled = false;
            cmbMaHDN.ResetText();
            cmbThuoc.ResetText();
            cmbDVT.ResetText();
            cmbNguoiNhan.ResetText();
            cmbTenHDN.ResetText();
        }

        private void bbi_Them_ItemClick_1(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            Flag = 0;
            Huy_Text(this);
            bbi_Them.Enabled = false;
            bbi_Sua.Enabled = false;
            bbi_Luu.Enabled = true;
            cmbMaHDN.Enabled = true;
            cmbTenHDN.Enabled = true;
            cmbThuoc.Enabled = true;
            dateTimeNgaySX.Enabled = true;
            txtSoLuong.Enabled = true;
            cmbDVT.Enabled = true;
            txtGiaNhap.Enabled = true;
            txtNguoiGiao.Enabled = true;
            cmbNguoiNhan.Enabled = true;
            bbi_Huy.Enabled = true;
        }
        Thuoc_BLL thuoc_bll = new Thuoc_BLL();
        NhanVien_BLL nhanvien_bll = new NhanVien_BLL();
        private void cmbThuoc_Click(object sender, EventArgs e)
        {
            string sql = "select * from tbl_Thuoc";
            DataTable dt = new DataTable();
            dt = thuoc_bll.taoBang(sql);
            cmbMaThuoc.DataSource = dt;
            cmbMaThuoc.DisplayMember = "MaThuoc";
            cmbThuoc.DataSource = dt;
            cmbThuoc.DisplayMember = "TenThuoc";
        }

        private void cmbNguoiNhan_Click(object sender, EventArgs e)
        {
            string sql = "select * from tbl_NhanVien";
            DataTable dt = new DataTable();
            dt = nhanvien_bll.taoBang(sql);
            cmbMaNV.DataSource = dt;
            cmbMaNV.DisplayMember = "MaNV";
            cmbNguoiNhan.DataSource = dt;
            cmbNguoiNhan.DisplayMember = "HoTen";
        }

        private void cmbMaHDN_Click(object sender, EventArgs e)
        {
            DataTable dt = new DataTable();
            string sql = "select * from tbl_HoaDonNhap";
            dt = nhanvien_bll.taoBang(sql);
            cmbMaHDN.DataSource = dt;
            cmbMaHDN.DisplayMember = "MaHDN";
            cmbTenHDN.DataSource = dt;
            cmbTenHDN.DisplayMember = "TenHDN";
        }

        private void cmbTenHDN_Click(object sender, EventArgs e)
        {
            DataTable dt = new DataTable();
            string sql = "select * from tbl_HoaDonNhap";
            dt = nhanvien_bll.taoBang(sql);
            cmbMaHDN.DataSource = dt;
            cmbMaHDN.DisplayMember = "MaHDN";
            cmbTenHDN.DataSource = dt;
            cmbTenHDN.DisplayMember = "TenHDN";
        }

        private void cmbMaThuoc_TextChanged(object sender, EventArgs e)
        {
            try
            {
                DataTable dt = new DataTable();
                string sql = "select * from tbl_Thuoc where MaThuoc='" + cmbMaThuoc.Text + "'";
                dt = thuoc_bll.taoBang(sql);
                cmbThuoc.DataSource = dt;
                cmbThuoc.DisplayMember = "TenThuoc";
            }
            catch (Exception)
            { }
        }

        private void cmbMaHDN_TextChanged_1(object sender, EventArgs e)
        {
            try
            {
                DataTable dt = new DataTable();
                string sql = "select * from tbl_HoaDonNhap where MaHDN='" + cmbMaHDN.Text + "'";
                dt = nhanvien_bll.taoBang(sql);
                cmbTenHDN.DataSource = dt;
                cmbTenHDN.DisplayMember = "TenHDN";
            }
            catch (Exception)
            { }
        }

        private void cmbMaHDN_Leave(object sender, EventArgs e)
        {
            if (cmbMaHDN.Text == "")
                cmbMaHDN.Focus();
        }

        private void cmbTenHDN_Leave(object sender, EventArgs e)
        {
            if (cmbTenHDN.Text == "")
                cmbTenHDN.Focus();
        }

        private void cmbThuoc_Leave(object sender, EventArgs e)
        {
            if (cmbThuoc.Text == "")
                cmbThuoc.Focus();
        }

        private void txtSoLuong_Leave(object sender, EventArgs e)
        {
            if (txtSoLuong.Text == "")
                txtSoLuong.Focus();
        }

        private void txtSoLuong_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsControl(e.KeyChar) && !Char.IsDigit(e.KeyChar))
                e.Handled = true;
        }

        private void txtNguoiGiao_Leave(object sender, EventArgs e)
        {
            if (txtNguoiGiao.Text == "")
                txtNguoiGiao.Focus();
        }

        private void txtGiaNhap_Leave(object sender, EventArgs e)
        {
            if (txtGiaNhap.Text == "")
                txtGiaNhap.Focus();

        }

        private void cmbNguoiNhan_Leave(object sender, EventArgs e)
        {
            if (cmbNguoiNhan.Text == "")
                cmbNguoiNhan.Focus();
        }
    }
}
